The vast majority of industrial processes consist of a series of sequential or concurrent steps, each step involving one or more actions to be taken by a machine or machines. The steps may occur at specific times and in a specified sequence according to specific parameters, or may occur in response to specific events. Each step may have one or more elements, each element describing activities or operations with greater specificity.
In the past, industrial equipment was commonly controlled directly by interfacing the equipment with a Programmable Logic Controller, or "PLC". A PLC is a solid-state device designed to perform logic functions previously accomplished by electromechanical relays. The PLC uses output modules to actuate industrial equipment in response to physical stimuli which the PLC is programmed to recognize through input modules. PLCs still find wide use today.
The vast majority of industrial control programs are modified during their life to increase efficiency or eliminate bugs therein, to update industrial processes, or in response to underlying process changes. Some conventionally utilized control systems require that the underlying control operation be discontinued while modifying the control program, resulting in lost manufacturing time. Moreover, discontinuing some industrial processes would result in catastrophic damage to the process equipment.
Industrial control programs may be written in relay ladder logic (RLL). RLL referred to herein is a programming language in which input/output signals are written with symbols, such as electrical circuit symbols that conventionally represent relay contacts and relay coils. Control system logic is executed in a repeating sequence of operations consisting of (1) reading all physical inputs, (2) executing the logic once, (3) writing all physical outputs, and (4) performing any background activity. This sequence is known as one "scan." A RLL control program begins each scan from the top of the ladder diagram. In order to modify a RLL control program, the user must insert "new" ladder logic rung while marking as "old" any rungs which are replaced, and further marking as "unchanged" any rungs that remain unchanged. To implement the modified relay ladder logic control program, the user executes only the "new" and "unchanged" rungs while retaining the "old" rungs in memory in case the user is forced to return to the previous unmodified control program version.
Because relay ladder logic programs fully execute during each scan, the relay ladder logic programming language is referred to as "stateless", meaning a relay ladder logic program does not retain any industrial process state information after each scan, unless expressly programmed to do so. As a result, every single input and output is important to each scan in relay ladder logic.
More recently, manufacturers have sought to take advantage of the greater flexibility of general-purpose computers, including inexpensive commercially available personal computers, or "PCs", to enhance the efficiency associated with creating and maintaining software programs used to control industrial processes. Because general purpose computers can be programmed in high level commercially available languages such as BASIC, FORTRAN, C, or in object-oriented languages such as C++, manufacturers and process control vendors have been able to develop PC-based control systems that emulate traditional PLC functions. PC-based control systems are easy to use, program and maintain, and offer significant cost savings over dedicated PLC-based solutions. In many instances when a PLC is used, the PLC is connected to a central control computer. In such an arrangement, the PLC plays its own dedicated role controlling the industrial process at hand while concurrently communicating information back to the central computer.
PC-based solutions may eliminate entirely the need for a PLC. By using the high level commercially available programming languages, control programming methods have evolved which use graphical flowcharts to assist the software programmer in developing control programs which can emulate traditional PLC functions. Use of PCs in this way enables a manufacturer to develop and run the operator interface on the same PC that controls the industrial process and to share data with other programs running under the same operating system through dynamic data exchange or other standard communication mechanisms. Thus, a single PC may perform the function of the programmable logic controller, the operator panel, the programming terminal, and the real time system simulator. A PC therefore can replace three separate components: PLC programming terminal, PLC processor, and operator interface. By implementing a PC-based control system, manufacturers are able to lower control system investment costs, increase productivity in design and industrial operations, and reduce down time with built in flowchart-based diagnostics.
Unlike RLL programs, graphical flowchart-based control programs do not fully execute during each scan of the control system logic. At the beginning of each scan, the program returns to and continues from where it was last executing. A graphical flowchart program must therefore retain industrial process state information in memory between scans. In order to modify a graphical flowchart-based control program, the modified program must incorporate the existing state information into the execution of the modified program.